package com.ynet.middleground.approve.bean;

import java.io.Serializable;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 项目名：ifp-approve <br>
 * 包名：com.ynet.middleground.approve.bean <br>
 * 类名：BusinessSignInfoData <br>
 * 描述： 业务数据-签章信息属性
 * 
 * @author Suremotoo
 * @create 2021-03-23 16:52
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "业务数据-签章信息属性", description = "业务数据-签章信息属性，业务表单数据为文件且签章时有该属性信息")
public class BusinessSignInfoData implements Serializable {

    private static final long serialVersionUID = 1301853289835235673L;

    @ApiModelProperty(value = "签署主体账号（悟空SDK产品创建的账户，即实际的签署方账户，可为个人/企业用户账号），将使用本账号绑定的默认数字证书进行签署。",
        notes = "签署主体账号（悟空SDK产品创建的账户，即实际的签署方账户，可为个人/企业用户账号），将使用本账号绑定的默认数字证书进行签署。", dataType = "String", required = true)
    @NotEmpty(message = "签署主体账号不能为空")
    private String accountId;

    @ApiModelProperty(value = "印章图片 id\n注意：印章数据要和账户信息对应，否则会出现签署的印章和背后的数字证书不一致的情况，从而造成签署纠纷",
        notes = "印章图片 id\n注意：印章数据要和账户信息对应，否则会出现签署的印章和背后的数字证书不一致的情况，从而造成签署纠纷", dataType = "Integer", required = true)
    @NotNull(message = "印章图片 id 不能为空")
    private Integer sealId;

    @ApiModelProperty(value = "定位类型，0坐标定位，1关键字定位，默认0（若为关键字定位，签章类型（signType）必须指定为关键字定位才生效）", notes = "定位类型",
        dataType = "String")
    private String posType;

    @ApiModelProperty(value = "签署页码 \n 若为多页签章，支持页码格式“1-3,5,8”，坐标定位时不可空", notes = "签署页码，若为多页签章，支持页码格式“1-3,5,8”，坐标定位时不可空",
        dataType = "String")
    private String posPage;

    @ApiModelProperty(value = "签署位置 X 坐标，默认值 0", notes = "签署位置 X 坐标，默认值 0", dataType = "float")
    private float posX;

    @ApiModelProperty(value = "签署位置 Y 坐标，默认值 0", notes = "签署位置 Y 坐标，默认值 0", dataType = "float")
    private float posY;

    @ApiModelProperty(value = "关键字\n仅限关键字签章时有效，若为关键字定位时，不可空；关键字建议不要设置特殊字符", notes = "关键字", dataType = "String")
    private String key;

    @ApiModelProperty(value = "印章展现宽度，将以此宽度对印章图片做同比缩放", notes = "印章展现宽度", dataType = "Float")
    private Float width;

    @ApiModelProperty(value = "是否是作废签签署，默认为 false", notes = "是否是作废签签署，默认为 false", dataType = "boolean")
    private boolean cacellingSign;

    @ApiModelProperty(value = "是否显示本地签署时间\n需要width设置92以上才可以看到时间", notes = "是否显示本地签署时间，需要width设置92以上才可以看到时间",
        dataType = "boolean")
    private boolean addSignTime;

    @ApiModelProperty(value = "签章类型\nSingle: 单页签章\nMulti: 多页签章\nEdges: 签骑缝章\nKey: 关键字签章",
        notes = "签章类型\nSingle: 单页签章\nMulti: 多页签章\nEdges: 签骑缝章\nKey: 关键字签章", dataType = "String", required = true)
    @NotBlank(message = "签章类型不能为空")
    private String signType;

}
